package com.ruoyi.zsyh.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.zsyh.domain.ZsyhUserRakearea;
import com.ruoyi.zsyh.domain.ZsyhUserRaker;
import com.ruoyi.zsyh.service.IZsyhUserRakerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Map;

import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.zsyh.mapper.ZsyhUserRakerMapper;
import com.ruoyi.common.core.text.Convert;

/**
 * 订单提成人信息Service业务层处理
 * 
 * @author yuexl
 * @date 2021-12-21
 */
@Service
public class ZsyhUserRakerServiceImpl implements IZsyhUserRakerService
{
    @Autowired
    private ZsyhUserRakerMapper zsyhUserRakerMapper;

    /**
     * 查询订单提成人信息
     * 
     * @param id 订单提成人信息ID
     * @return 订单提成人信息
     */
    @Override
    public ZsyhUserRaker selectZsyhUserRakerById(String id)
    {
        return zsyhUserRakerMapper.selectZsyhUserRakerById(id);
    }

    @Override
    public ZsyhUserRaker selectZsyhUserRakerByUserId(String id)
    {
        return zsyhUserRakerMapper.selectZsyhUserRakerByUserId(id);
    }

    /**
     * 查询订单提成人信息列表
     * 
     * @param zsyhUserRaker 订单提成人信息
     * @return 订单提成人信息
     */
    @Override
    public List<ZsyhUserRaker> selectZsyhUserRakerList(ZsyhUserRaker zsyhUserRaker)
    {
        return zsyhUserRakerMapper.selectZsyhUserRakerList(zsyhUserRaker);
    }

    public List<ZsyhUserRaker> selectZsyhUserRakerByAgentId(Map map){
        return zsyhUserRakerMapper.selectZsyhUserRakerByAgentId(map);
    }

    public ZsyhUserRaker selectZsyhUserRakerByPhone(String rakerPhone){
        return zsyhUserRakerMapper.selectZsyhUserRakerByPhone(rakerPhone);
    }

    /**
     * 新增订单提成人信息
     * 
     * @param zsyhUserRaker 订单提成人信息
     * @return 结果
     */
    @Transactional
    @Override
    public int insertZsyhUserRaker(ZsyhUserRaker zsyhUserRaker)
    {
        zsyhUserRaker.setCreateTime(DateUtils.getNowDate());
        int rows = zsyhUserRakerMapper.insertZsyhUserRaker(zsyhUserRaker);
        insertZsyhUserRakearea(zsyhUserRaker);
        return rows;
    }

    /**
     * 修改订单提成人信息
     * 
     * @param zsyhUserRaker 订单提成人信息
     * @return 结果
     */
    @Transactional
    @Override
    public int updateZsyhUserRaker(ZsyhUserRaker zsyhUserRaker)
    {
        zsyhUserRaker.setUpdateTime(DateUtils.getNowDate());
        zsyhUserRakerMapper.deleteZsyhUserRakeareaByRakerId(zsyhUserRaker.getId());
        insertZsyhUserRakearea(zsyhUserRaker);
        return zsyhUserRakerMapper.updateZsyhUserRaker(zsyhUserRaker);
    }

    @Override
    public int updateZsyhUserRakerApplet(ZsyhUserRaker zsyhUserRaker)
    {
        zsyhUserRaker.setUpdateTime(DateUtils.getNowDate());
        return zsyhUserRakerMapper.updateZsyhUserRaker(zsyhUserRaker);
    }
    /**
     * 删除订单提成人信息对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteZsyhUserRakerByIds(String ids)
    {
        zsyhUserRakerMapper.deleteZsyhUserRakeareaByRakerIds(Convert.toStrArray(ids));
        return zsyhUserRakerMapper.deleteZsyhUserRakerByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除订单提成人信息信息
     * 
     * @param id 订单提成人信息ID
     * @return 结果
     */
    @Override
    public int deleteZsyhUserRakerById(String id)
    {
        zsyhUserRakerMapper.deleteZsyhUserRakeareaByRakerId(id);
        return zsyhUserRakerMapper.deleteZsyhUserRakerById(id);
    }


    /**
     * 新增订单管理人管辖区域信息
     * 
     * @param zsyhUserRaker 订单提成人信息对象
     */
    public void insertZsyhUserRakearea(ZsyhUserRaker zsyhUserRaker)
    {
        List<ZsyhUserRakearea> zsyhUserRakeareaList = zsyhUserRaker.getZsyhUserRakeareaList();
        String id = zsyhUserRaker.getId();
        if (StringUtils.isNotNull(zsyhUserRakeareaList))
        {
            List<ZsyhUserRakearea> list = new ArrayList<ZsyhUserRakearea>();
            for (ZsyhUserRakearea zsyhUserRakearea : zsyhUserRakeareaList)
            {
                zsyhUserRakearea.setRakerId(id);
                list.add(zsyhUserRakearea);
            }
            if (list.size() > 0)
            {
                zsyhUserRakerMapper.batchZsyhUserRakearea(list);
            }
        }
    }

    public List<Map> selectZsyhUserRakerareaList(String rakerId){
        return zsyhUserRakerMapper.selectZsyhUserRakerareaList(rakerId);
    }
}
